package cn.cleanarch.infra.idp.s3.domain.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import cn.cleanarch.infra.idp.database.entity.DBModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * S3操作审计日志实体类
 */
@Data
@ToString
@EqualsAndHashCode(callSuper = true)
@TableName("t_s3_audit_log")
public class S3AuditLog extends DBModel {

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 操作类型
     */
    private String operationType;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件大小
     */
    private Long fileSize;

    /**
     * 对象键
     */
    private String objectKey;

    /**
     * S3配置ID
     */
    private Long s3ConfigId;

    /**
     * IP地址
     */
    private String ipAddress;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * 执行时间（毫秒）
     */
    private Long executionTime;

    /**
     * 操作状态
     */
    private String status;

    /**
     * 错误信息
     */
    private String errorMessage;

}